@@ -1,39 +0,0 @@ |
||
1 |
-module JsonPathOptionsOverwritable |
|
2 |
- extend ActiveSupport::Concern |
|
3 |
- # Using this concern allows providing optional `<attribute>_path` options hash |
|
4 |
- # attributes which will then (if not blank) be interpolated using the provided JSONPath. |
|
5 |
- # |
|
6 |
- # Example options Hash: |
|
7 |
- # { |
|
8 |
- # name: 'Huginn', |
|
9 |
- # name_path: '$.name', |
|
10 |
- # title: 'Hello from Huginn' |
|
11 |
- # title_path: '' |
|
12 |
- # } |
|
13 |
- # Example event payload: |
|
14 |
- # { |
|
15 |
- # name: 'dynamic huginn' |
|
16 |
- # } |
|
17 |
- # calling agent.merge_json_path_options(event) returns the following hash: |
|
18 |
- # { |
|
19 |
- # name: 'dynamic huginn' |
|
20 |
- # title: 'Hello from Huginn' |
|
21 |
- # } |
|
22 |
- |
|
23 |
- private |
|
24 |
- def merge_json_path_options(event) |
|
25 |
- options.select { |k, v| options_with_path.include? k}.tap do |merged_options| |
|
26 |
- options_with_path.each do |a| |
|
27 |
- merged_options[a] = select_option(event, a) |
|
28 |
- end |
|
29 |
- end |
|
30 |
- end |
|
31 |
- |
|
32 |
- def select_option(event, a) |
|
33 |
- if options[a.to_s + '_path'].present? |
|
34 |
- Utils.value_at(event.payload, options[a.to_s + '_path']) |
|
35 |
- else |
|
36 |
- options[a] |
|
37 |
- end |
|
38 |
- end |
|
39 |
-end |
@@ -121,10 +121,6 @@ class Agent < ActiveRecord::Base |
||
121 | 121 |
end |
122 | 122 |
end |
123 | 123 |
|
124 |
- def make_message(payload, message = options[:message]) |
|
125 |
- message.gsub(/<([^>]+)>/) { Utils.value_at(payload, $1) || "??" } |
|
126 |
- end |
|
127 |
- |
|
128 | 124 |
def trigger_web_request(params, method, format) |
129 | 125 |
if respond_to?(:receive_webhook) |
130 | 126 |
Rails.logger.warn "DEPRECATED: The .receive_webhook method is deprecated, please switch your Agent to use .receive_web_request." |
@@ -1,31 +0,0 @@ |
||
1 |
-require 'spec_helper' |
|
2 |
- |
|
3 |
-shared_examples_for JsonPathOptionsOverwritable do |
|
4 |
- before(:each) do |
|
5 |
- @valid_params = described_class.new.default_options |
|
6 |
- |
|
7 |
- @checker = described_class.new(:name => "somename", :options => @valid_params) |
|
8 |
- @checker.user = users(:jane) |
|
9 |
- |
|
10 |
- @event = Event.new |
|
11 |
- @event.agent = agents(:bob_weather_agent) |
|
12 |
- @event.payload = { :room_name => 'test room', :message => 'Looks like its going to rain', username: "Huggin user"} |
|
13 |
- @event.save! |
|
14 |
- end |
|
15 |
- |
|
16 |
- describe "select_option" do |
|
17 |
- it "should use the room_name_path if specified" do |
|
18 |
- @checker.options['room_name_path'] = "$.room_name" |
|
19 |
- @checker.send(:select_option, @event, :room_name).should == "test room" |
|
20 |
- end |
|
21 |
- |
|
22 |
- it "should use the normal option when the path option is blank" do |
|
23 |
- @checker.options['room_name'] = 'test' |
|
24 |
- @checker.send(:select_option, @event, :room_name).should == "test" |
|
25 |
- end |
|
26 |
- end |
|
27 |
- |
|
28 |
- it "should merge all options" do |
|
29 |
- @checker.send(:merge_json_path_options, @event).symbolize_keys.keys.should == @checker.send(:options_with_path) |
|
30 |
- end |
|
31 |
-end |